МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"
ІНСТИТУТ КОМП’ЮТЕРНИХ ТЕХНОЛОГІЙ, АВТОМАТИКИ ТА МЕТРОЛОГІЇ
КАФЕДРА ”ЗАХИСТ ІНФОРМАЦІЇ”
Звіт
до лабораторної роботи № 3
з курсу: "Системи запису та відтворення інформації"
на тему: “ ДОСЛІДЖЕННЯ МЕТОДІВ ОБРОБКИ ЗОБРАЖЕНЬ В MATLAB ”
Варіант 4.
Мета роботи:
Ознайомитися з основними можливостями обробки зображень
реалізованими в середовищі MatLab.
Повний текст завдання:
Ознайомитись з теоретичним матеріалом.
Завантажити файл вказаний в завданні відповідно до свого варіанту.
Вивести основну інформацію про графічний файл.
Накласти на зображення шуми gaussian, salt & pepper, speckle.
Провести лінійну фільтрацію зашумленого зображення фільтрами ‘average’, ‘gaussian’, sobel’, ‘prewitt’, ‘unsharp’. Зробити висновки про ефективність фільтрів.
Провести медіанну фільтрацію. Зробити висновки про ефективність фільтру
Написати програму збереження відфільтрованого зображення у bmp-файлі.
Переконатися у працездатності програми.
Варіант
Назва файлу
4
belmont1.tiff
Лістинг програми:
I = imread('D:\Політех\С-ми запису і відтворення інф\Photo\belmont1.tiff');
figure(1);
imshow(I);
J1=imnoise(I,'salt & pepper');
figure(2);
subplot(1,2,1); imshow(I);title('Original');
subplot(1,2,2); imshow(J1);title('Salt & Pepper');
J2=imnoise(I,'gaussian');
figure(3); title('Gaussian');
subplot(1,2,1); imshow(I);
subplot(1,2,2); imshow(J2);
J3=imnoise(I,'speckle');
figure(4);
subplot(1,2,1); imshow(I);
subplot(1,2,2); imshow(J3);
%//////////////////////////////////////////////////////////////////
B = medfilt2(J1);
figure(5);
subplot(1,2,1); imshow(J1); title('Noised salt & pepper');
subplot(1,2,2); imshow(B); title('Filtered');
B = medfilt2(J2);
figure(6);
subplot(1,2,1); imshow(J2); title('Noised Gaussian');
subplot(1,2,2); imshow(B); title('Filtered');
B = medfilt2(J3);
figure(7);
subplot(1,2,1); imshow(J3); title('Noised speckle');
subplot(1,2,2); imshow(B); title('Filtered');
%////////////////////////////////////////////////////////////////////
h=fspecial('average');
J4 = imfilter(J1, h);
figure(8);
subplot(1,2,1); imshow(J2); title('Noised salt & pepper');
subplot(1,2,2); imshow(J4); title('Filtered Average');
J4 = imfilter(J2, h);
figure(9);
subplot(1,2,1); imshow(J2); title('Noised Gaussian');
subplot(1,2,2); imshow(J4); title('Filtered Average');
J4 = imfilter(J3, h);
figure(10);
subplot(1,2,1); imshow(J2); title('Noised speckle');
subplot(1,2,2); imshow(J4); title('Filtered Average');
h=fspecial('gaussian');
J4=imfilter(J1,h);
figure(11);
subplot(1,2,1); imshow(J2); title('Noised Gaussian');
subplot(1,2,2); imshow(J4); title('Filtered ');
J4=imfilter(J2,h);
figure(12);
subplot(1,2,1); imshow(J2); title('Noised Gaussian');
subplot(1,2,2); imshow(J4); title('Filtered');
J5=imfilter(J3,h);
figure(13);
subplot(1,2,1); imshow(J3); title('Noised unsharp');
subplot(1,2,2); imshow(J5); title('Filtered');
h=fspecial('unsharp');
J4=imfilter(J1,h);
figure(14);
subplot(1,2,1); imshow(J2); title('Noised salt & pepper');
subplot(1,2,2); imshow(J4); title('Filtered ');
J4=imfilter(J2,h);
figure(15);
subplot(1,2,1); imshow(J2); title('Noised Gaussian');
subplot(1,2,2); imshow(J4); title('Filtered');
J5=imfilter(J3,h);
figure(16);
subplot(1,2,1); imshow(J3); title('Noised unsharp');
subplot(1,2,2); imshow(J5); title('Filtered');
% Визначити висоту і ширину зображення
[m, n] = size(I);
H_I = m; % Висота
W_I = n; % Ширина
% Доповнити кількість байт в рядку до кратних 4
W_Real = W_I + (W_I - fix(W_I/4)*4); % Справжній розмір рядка в байтах
% Обчислити розмір файлу
File_Size = 54 + W_Real * H_I + 256*4;
% Обчислити розмір зображення в байтах
Image_Size = W_Real * H_I;
% Зміщення зображення від початку файлу
Offset = 54 + 256*4;
% Відкрити файл для запису
d = fopen('my.bmp', 'wb');
%//////////////////////...